// 引入第三方模块
const express = require('express');
// 引入连接池模块
const pool = require('../pool.js');
// 创建路由器对象
const r = express.Router();
// 详情查询
r.get('/did', (req, res, next) => {
    let obj = req.query.did;
    console.log(obj);
    // 执行SQL命令
    pool.query("SELECT * from details d,recommend r where d.details_did=r.rid and r.rid=?", [obj], (err, result) => {
        if (err) {
            next(err);
            return;
        }
        console.log(result);
        if (result.length === 0) {
            res.send({code: 500,msg: "查询失败"});
        } else {
            res.send({code: 200,msg: "查询成功",data: result});
        }
    })
})

r.get('/title', (req, res, next) => {
    let obj = req.query.title;
    console.log(obj);
    // 执行SQL命令
    pool.query("SELECT * from details where title LIKE %?%", [obj], (err, result) => {
        if (err) {
            next(err);
            return;
        }
        console.log(result);
        if (result.length === 0) {
            res.send({code: 500,msg: "查询失败"});
        } else {
            res.send({code: 200,msg: "查询成功",data: result});
        }
    })
})
// 增加文章详情
r.post('/add', (req, res, next) => {
    let obj = req.body;
    console.log(obj);
    // 增加数据
    pool.query('insert into details set ?', [obj], (err, result) => {
        if (err) {
            next(err);
            return;
        }
        if (result.length === 0) {
            res.send({code: 500,msg: '增加文章详情失败'});
        } else {
            res.send({code: 200, msg: '增加文章详情成功'});
        }
    })
});

// 删除详情
r.post('/deid', (req, res, next) => {
    let obj = req.query.did;
    console.log(obj);
    // 执行sql命令
    let sql = 'delete from details where did = ?'
    pool.query(sql, [obj], (err, result) => {
        if (err) {
            next(err);
            return;
        }
        console.log(result);
        if (result.affectedRows === 0) {
            res.send({ code: 500, msg: '删除失败' });
        } else {
            res.send({ code: 200, msg: '删除成功' });
        }
    })
});
r.put('/put', (req, res, next) => {
    //获取post的数据
    let obj = req.body;
    console.log(obj);
    // 验证各项是否为空 遍历对象
    let i = 400;//用于记录状态码
    for (let k in obj) {
        // 每次遍历一个属性 状态码加一
        i++;
        // k代表属性名 obj[k]代表属性值
        //如果属性值为空 提示属性名这项 不能为空
        if (!obj[k]) {
            res.send({ code: i, msg: `${k}不能为空` });
            return;
        }
    }
    // 执行sql语句命令 修改用户数据
    pool.query('update details set ? where did=?', [obj, obj.did], (err, result) => {
        if (err) {
            // 如果有错交于下一个中间件处理
            next(err);
        }
        console.log(result);
        //如果对象下的affectedRows的值是0说明修改失败
		//否则修改成功
        if (result.affectedRows === 0) {
            res.send({ code: 201, msg: '修改失败' });
        } else {
            res.send({code:200,msg:'修改成功'});
        }
     });
})

// 根据id查询文章详情
r.get('/art', (req, res) => {
      let did = req.query.did;
      let sql = 'select * from details where did=?';
      // 执行sql语句
      pool.query(sql, [did], (err, results) => {
        console.log(results);
        if (err) throw err;
        res.send({
          message: 'ok',
          code: 200,
          results: results
        })
      })
    })
// 导出路由器对象
module.exports = r;